﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using Sistema_Test_OnLine.Model;
using Sistema_Test_OnLine.Logic;

namespace Sistema_Test_OnLine.Presentacion
{
    public partial class Add_Pregunta : System.Web.UI.Page
    {

        private string url_imagen;
        string tipo = "nada";
        string solucion = "nada";
        string opcion = "nada";

        public string Url_imagen
        {
            get { return url_imagen; }
            set { url_imagen = value; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {

        }
        protected void Button1_Click1(object sender, EventArgs e)
        {

            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Seleccion Unica"))
            {
                Label1.Visible = true;
                Label2.Visible = true;
                Label3.Text = "Por favor seleccione la respuesta correcta.";
                Label3.Visible = true;
                Label4.Visible = true;
                Label5.Visible = true;
                Label6.Visible = true;
                RadioButton1.Visible = true;
                RadioButton2.Visible = true;
                RadioButton3.Visible = true;
                RadioButton4.Visible = true;
                chkb_sol1.Visible = false;
                chkb_sol2.Visible = false;
                chkb_sol3.Visible = false;
                chkb_sol4.Visible = false;
                txt_explicacion.Visible = true;
                txt_pregunta.Visible = true;
                txtb_op1.Visible = true;
                txtb_op2.Visible = true;
                txtb_op3.Visible = true;
                txtb_op4.Visible = true;
                imgSubida.Visible = true;
                uploadFile.Visible = true;
                btnSubir.Visible = true;
                btn_guardar_preg.Visible = true;
                btn_cancelar_preg.Visible = true;
                lis_examenes.Visible = true;

            }
            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Seleccion Multiple"))
            {
                Label1.Visible = true;
                Label2.Visible = true;
                Label3.Text = "Por favor seleccionar las repuestas correctar y dejar las incorrectas sin selección.";
                Label3.Visible = true;
                Label4.Visible = true;
                Label5.Visible = true;
                Label6.Visible = true;
                chkb_sol1.Visible = true;
                chkb_sol2.Visible = true;
                chkb_sol3.Visible = true;
                chkb_sol4.Visible = true;
                RadioButton1.Visible = false;
                RadioButton2.Visible = false;
                RadioButton3.Visible = false;
                RadioButton4.Visible = false;
                txt_explicacion.Visible = true;
                txt_pregunta.Visible = true;
                txtb_op1.Visible = true;
                txtb_op2.Visible = true;
                txtb_op3.Visible = true;
                txtb_op4.Visible = true;
                imgSubida.Visible = true;
                btn_guardar_preg.Visible = true;
                btn_cancelar_preg.Visible = true;
                lis_examenes.Visible = true;
            }
            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Completar"))
            {
                Label1.Visible = true;
                Label2.Visible = true;
                Label3.Text = "Por favor Llenar el espacio de texto con la solucion.";
                Label3.Visible = true;
                Label4.Visible = true;
                Label5.Visible = true;
                Label6.Visible = true;
                RadioButton1.Visible = false;
                RadioButton2.Visible = false;
                RadioButton3.Visible = false;
                RadioButton4.Visible = false;
                chkb_sol1.Visible = false;
                chkb_sol2.Visible = false;
                chkb_sol3.Visible = false;
                chkb_sol4.Visible = false;
                txt_explicacion.Visible = true;
                txt_pregunta.Visible = true;
                txtb_op1.Visible = true;
                txtb_op2.Visible = false;
                txtb_op3.Visible = false;
                txtb_op4.Visible = false;

                btn_guardar_preg.Visible = true;
                btn_cancelar_preg.Visible = true;
                lis_examenes.Visible = true;

            }
        }



        private Boolean ValidaExtension(string sExtension)
        {
            Boolean rel = false;
            switch (sExtension)
            {
                case ".jpg":
                case ".jpeg":
                case ".png":
                case ".gif":
                case ".bmp":
                    rel = true;
                    break;
                default:
                    rel = false;
                    break;

            }
            return rel;
        }
        protected void btnSubir_Click(object sender, EventArgs e)
        {

            string sExt = string.Empty;
            string sName = string.Empty;
            imgSubida.Width = 0;
            imgSubida.Width = 0;
            imgSubida.ImageUrl = "";


            if (uploadFile.HasFile)
            {
                sName = uploadFile.FileName;
                sExt = Path.GetExtension(sName);

                if (ValidaExtension(sExt))
                {
                    uploadFile.SaveAs(MapPath("~/images_preguntas/" + sName));
                    imgSubida.Width = 300;
                    imgSubida.Width = 300;
                    //Url_imagen = "/images_preguntas/"+sName;
                    imgSubida.ImageUrl = "/images_preguntas/" + sName;
                    lblMensaje.Text = "Archivo cargado correctamente.";

                }
                else
                    lblMensaje.Text = "El archivo no es de tipo imagen.";
            }
            else
                lblMensaje.Text = "Seleccione el archivo que desea subir.";
        }

        protected void btn_guardar_preg_Click(object sender, EventArgs e)
        {
            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Seleccion Unica"))
            {
                tipo = "Unica Respuesta";
                string re1 = "no", re2 = "no", re3 = "no", re4 = "no", op1 = "no", op2 = "no", op3 = "no", op4 = "no";

                if (txt_pregunta.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar un enunciado para la pregunta";
                    txt_pregunta.Focus();
                    return;
                }

                if (txtb_op1.Text.Equals("") || txtb_op2.Text.Equals("") || txtb_op3.Text.Equals("") || txtb_op4.Text.Equals(""))
                {
                    lblMensaje0.Text = "Debe ingresar las 4 opciones";
                    txtb_op1.Focus();
                    return;
                }

                if (txt_explicacion.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar una explicacion para al solucion de la pregunta";
                    txt_explicacion.Focus();
                    return;
                }

                if (RadioButton1.Checked)
                {
                    re1 = txtb_op1.Text;
                }
                if (RadioButton2.Checked)
                {
                    re1 = txtb_op2.Text;
                }
                if (RadioButton3.Checked)
                {
                    re1 = txtb_op3.Text;
                }
                if (RadioButton4.Checked)
                {
                    re1 = txtb_op4.Text;
                }

                if (!RadioButton1.Checked)
                {
                    op1 = txtb_op1.Text;
                }
                if (!RadioButton2.Checked)
                {
                    op2 = txtb_op2.Text;
                }
                if (!RadioButton3.Checked)
                {
                    op3 = txtb_op3.Text;
                }
                if (!RadioButton4.Checked)
                {
                    op4 = txtb_op4.Text;
                }

                PreguntaDB preguntaDB = new PreguntaDB();
                Pregunta preg = new Pregunta(0, txt_pregunta.Text, txt_explicacion.Text, re1, re2, re3, re4, op1, op2, op3, op4, tipo, lis_examenes.SelectedValue, imgSubida.ImageUrl);
                preguntaDB.add(preg);
                Response.Redirect("~/Presentacion/Banco_Preguntas.aspx");
            }
            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Seleccion Multiple"))
            {
                tipo = "Multiple Respuesta";
                string re1 = "no", re2 = "no", re3 = "no", re4 = "no", op1 = "no", op2 = "no", op3 = "no", op4 = "no";

                if (txt_pregunta.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar un enunciado para la pregunta";
                    txt_pregunta.Focus();
                    return;
                }

                if (txtb_op1.Text.Equals("") || txtb_op2.Text.Equals("") || txtb_op3.Text.Equals("") || txtb_op4.Text.Equals(""))
                {
                    lblMensaje0.Text = "Debe ingresar las 4 opciones";
                    txtb_op1.Focus();
                    return;
                }
                if (txt_explicacion.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar una explicacion para al solucion de la pregunta";
                    txt_explicacion.Focus();
                    return;
                }

                if (chkb_sol1.Checked)
                {
                    re1 = txtb_op1.Text;
                }
                if (chkb_sol2.Checked)
                {
                    re2 = txtb_op2.Text;
                }
                if (chkb_sol3.Checked)
                {
                    re3 = txtb_op3.Text;
                }
                if (chkb_sol4.Checked)
                {
                    re4 = txtb_op4.Text;
                }

                if (!chkb_sol1.Checked)
                {
                    op1 = txtb_op1.Text;
                }
                if (!chkb_sol2.Checked)
                {
                    op2 = txtb_op2.Text;
                }
                if (!chkb_sol3.Checked)
                {
                    op3 = txtb_op3.Text;
                }
                if (!chkb_sol4.Checked)
                {
                    op4 = txtb_op4.Text;
                }

                PreguntaDB preguntaDB = new PreguntaDB();
                Pregunta preg = new Pregunta(0, txt_pregunta.Text, txt_explicacion.Text, re1, re2, re3, re4, op1, op2, op3, op4, tipo, lis_examenes.SelectedValue, imgSubida.ImageUrl);
                preguntaDB.add(preg);
                Response.Redirect("~/Presentacion/Banco_Preguntas.aspx");
            }
            if (List_preguntas.SelectedValue.ToString().Equals("Pregunta de Completar"))
            {
                tipo = "Completar";
                string re1 = "no", re2 = "no", re3 = "no", re4 = "no", op1 = "no", op2 = "no", op3 = "no", op4 = "no";

                if (txt_pregunta.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar un enunciado para la pregunta";
                    txt_pregunta.Focus();
                    return;
                }

                if (txtb_op1.Text.Equals(""))
                {
                    lblMensaje0.Text = "Debe ingresar la repuesta a la pregunta";
                    txtb_op1.Focus();
                    return;
                }
                if (txt_explicacion.Text.Equals(" "))
                {
                    lblMensaje3.Text = "Debe ingresar una explicacion para al solucion de la pregunta";
                    txt_explicacion.Focus();
                    return;
                }

                PreguntaDB preguntaDB = new PreguntaDB();
                Pregunta preg = new Pregunta(0, txt_pregunta.Text, txt_explicacion.Text, txtb_op1.Text, re2, re3, re4, op1, op2, op3, op4, tipo, lis_examenes.SelectedValue, imgSubida.ImageUrl);
                preguntaDB.add(preg);
                Response.Redirect("~/Presentacion/Banco_Preguntas.aspx");
            }

        }
        
    }
}